AWS CLI のコマンド結果が途中までしか表示されないときの対処方法
困っていた内容
AWS CLI で結果が長いコマンドを実行すると、途中の結果までしか表示されません。
以前は同じコマンドで全て表示されていたのですが、すべて表示する方法を教えてください。
$ aws s3api list-objects \ --bucket aws-cloudtrail-logs-123456789 { "Contents": [ { "Key": "AWSLogs/123456789/CloudTrail/", "LastModified": "2000-01-02T03:04:05+00:00", "ETag": "\"123456789123456789123456789\"", "Size": 0, "StorageClass": "STANDARD", "Owner": { : # 結果の途中で表示が停止する
どう対応すればいいの?
コマンドに--no-cli-pager
オプションを追加してください。
$ aws s3api list-objects \ --bucket aws-cloudtrail-logs-123456789 \ --no-cli-pager
AWS CLI のバージョン 2 からクライアント側のページャーがデフォルトで有効になり、コマンド結果が長くなる場合は、分割して表示されます。
ページャーの使用は--no-cli-pager
オプションで該当のコマンド実行に限り一時的に無効にできるほか、環境変数やConfigで半永久的に無効にできます。環境変数やConfigによる設定は次のブログを確認してください。
なお、ページャーとして Linux もしくは macOS の場合はless
、Windows の場合はmore
がデフォルトで使用されます。
参考資料
- AWS CLI のページ分割オプションの使用 - AWS Command Line Interface
- AWS CLI バージョン 2 の新機能と変更点 - AWS Command Line Interface
クライアント側のページャー
AWS CLI バージョン 2 では、出力にクライアント側のページャープログラムを使用できます。デフォルトでは、この機能がオンになり、オペレーティングシステムのデフォルトのページャープログラムを介してすべての出力を返します。